#ifndef CONFIG_H
#define CONFIG_H
#include <string>
#include <Common\Common.h>

#include <map>

struct DllExport DataChannel{
public:
	DATA_TYPE * RawData;
	LENGTH_TYPE Length;
	LENGTH_TYPE SampleRate;

	DataChannel();
};

class Config {
	std::map<std::string, std::map<std::string, std::string>> map;
	std::string path;
public:

	Config(std::string);

	bool Load();
	std::string str;

	double GetDouble(std::string, double);
	int    GetInt(std::string, int);
	std::string GetString(std::string, std::string);
	bool   GetBool(std::string, bool);
};


#include <Config\OptionChan.h>
struct DllExport Option{
	// MODULES
	bool FileOutput;
	bool PitchDetector;

	//PITCH DETECTOR
	int AnalysisChannel;
	int BlockSize;
	int Overlap;
	bool NormalizeForDetection;
	float Fidelity;
	int AddAvgName;
	// Get output
	int Pitch_Graph;
	int SineWave_Graph;



	//OUTPUTS
	//bool Output_PitchData;


	//Store File Option
	
	std::string OutputDir;
	int MovetoNewFolder;
	std::string PrefixName;
	int AddPrefixName;
	



	Option();

	void SetOptionHelmholtz(DataChannel  *opt);
	int Load(std::string path);
};



#endif 